home *** CD-ROM | disk | FTP | other *** search
- Incdir Df1:
- Include Source/CustomRegisters
-
- Ciaapra = $BFE001
- Openlibrary = -30-522
- Disable = -120
- Enable = -126
- Startlist = 38
- Execbase = 4
- Planesize = 32*82
- Spincllen = 20
- Nobobs = 196
- Memforbobs = ((Nobobs+14)/15+1)*225*2*4*2
-
- Main:
- Move.l Execbase,a6
- Jsr Disable(a6)
-
- Move.l #Ypos1,d0
- Eor.l #Ypos2,d0
- Move.l d0,Yeor
-
- Move.l #$78000,Bobmem
-
- ;------ Copy bobs into Bobmem --------
-
- Move #Memforbobs/225/16,d0
- Move.l Bobmem(pc),a0
- Move.l a0,a2
- Add.l #Memforbobs/2,a2
- Bobloop2:
- Move #449,d1
- Lea Ball,a1
- Lea Mask,a3
- Bobloop:
- Move.l (a1)+,(a0)+
- Move.l (a3)+,(a2)+
- Dbf d1,Bobloop
- Dbf d0,Bobloop2
-
- ;------- Create second ypos -----------
-
- Lea Ypos2,a0
- Move #$4000,d1
- Move #4095,d0
- Yloop
- Add d1,(a0)+
- Dbf d0,Yloop
-
- ;--------- Switch Copper DMA ----------
-
- Move.l #Clstart,Cop1lc
- Clr Copjmp1
-
- Move.w #$8780,Dmacon
- Move.w #$002f,Dmacon
-
- Moveq #7,d0
- Lea Spr0data,a0
- Clclr
- Clr.l (a0)
- Addq #8,a0
- Dbf d0,Clclr
-
- ;---------- Demo loop ------------
-
- Wait: Move.b $dff006,d2
- Bne.s Wait
- Move.b $dff005,d2
- Bne.s Wait
-
- ;----------- Move the bobs -----------
- Bobs:
- Move #$4000,d0
- Eor d0,Bobplst+2
- Eor d0,Bobplst+10
- Eor d0,Bobbank+2
- Move.l Yeor(pc),d0
- Eor.l d0,Ytab
-
- Clr Bltdmod
- Move.l #$ffffffff,Bltafwm
- Move.l #$01000000,Bltcon0
-
- Move.l a7,Store
- Move.l Bobbank(pc),a0
- Move.l a0,Bltdpth
- Move #104*64+40,Bltsize
- Movem.l Blank,d0-d7/a1-a7
- Lea $3e80(a0),a0
-
- Rept 128
- Movem.l d0-d7/a1-a7,-(a0)
- Endr
- Move.l Store(pc),a7
-
- Add #9,Xpt1
- And #$7ff,Xpt1
- Add #4,Ypt1
- And #$7ff,Ypt1
-
- Lea $dff04a,a0
- Lea $dff056,a1
- Lea $dff040,a2
- Lea $dff058,a3
-
- Move Xpt1(pc),d0
- Add d0,d0
- Move d0,d1
- Add d1,d1
- Move Ypt1(pc),d2
- Add d2,d2
- Move.l Ytab(pc),a4
- Lea (a4,d2.w),a4
- Lea Xpos(pc),a5
- Lea (a5,d0.w),a5
- Lea Shift(pc),a6
- Lea (a6,d1.w),a6
-
- Subq #1,Count
- Bne.s Nobegin
- Move #4,Count
- Add.l #120,Anim
- Cmp.l #120*15,Anim
- Bne.s Nobegin
- Clr.l Anim
- Nobegin
- Move #2+30*$40,d7
- Move.l #$24,$24(a2)
- Move.l #$240000,$20(a2)
- Move #(Nobobs-1)*4,d5
- Move.l Bobmem(pc),d0
- Add.l Anim(pc),d0
- Move.l d0,$10(a2)
- Add.l #Memforbobs/2,d0
- Move.l d0,$0c(a2)
- Move #7,$14(a2)
- Move #7,$08(a2)
-
- A set 0
- Rept Nobobs
- Move (45*A*2)&$ffe(a4),d2
- Add (69*A*2)&$ffe(a5),d2
- Move d2,(a0)
- Move d2,(a1)
- Move.l (69*A*4)&$1ffc(a6),(a2)
- Move d7,(a3)
- A set A+1
- Endr
-
- Btst #6,Ciaapra
- Bne Wait
-
- ;--------- End Program ------------
-
- ;---- Restore old Copper list -----
-
- Move.l Execbase,a6
- Move.l Bobmem,a1
- Move.l #Memforbobs,d0
- Jsr -$d2(a6)
- Nobobmem:
- Move.l #$70000,a1
- Move.l #$8000,d0
- Jsr -$d2(a6)
- Noplanemem:
- Move.l #Grname,a1
- Clr.l d0
- Jsr Openlibrary(a6)
- Move.l d0,a4
- Move.l Startlist(a4),Cop1lc
- Clr.w Copjmp1
- Move.l a4,a1
- Jsr -$19e(a6)
- Move.w #$83E0,Dmacon
- Jsr Enable(a6)
- Moveq.l #0,d0
- Rts
-
- ;------------- Variables ----------------
-
- Pointers:
- Xpt1 Dc.w $40
- Ypt1 Dc.w 0
-
- Bobbank Dc.l $74000
-
- Ytab Dc.l Ypos2
- Yeor Dc.l 0
-
- Pressedit Dc.w 0
- Sinuspt Dc.w 0
- Bobmem Dc.l 0
-
- Bobplane1 Dc.l $70000
-
- Store Dc.l 0
-
- Anim Dc.l 0
- Count Dc.w 4
-
- ;------------- Constants --------------
-
- Grname: Dc.b "graphics.library",0
-
- Even
-
-
- ;---------- The Copperlists -------------
- Clstart:
- Wait 0,6
- Bobplst:
- Mov 0,Bpl1ptl
- Mov 7,Bpl1pth
- Mov 40,Bpl2ptl
- Mov 7,Bpl2pth
- Mov $3281,Diwstrt
- Mov $fac1,Diwstop
- Mov $0038,Ddfstrt
- Mov $00d0,Ddfstop
- Mov $0000,Color00
- Mov $0fcc,Color01
- Mov $0f00,Color02
- Mov $0a00,Color03
- Mov 40,Bpl1mod
- Mov 40,Bpl2mod
- Mov 0,Bplcon1
- Mov 0,Bplcon2
- Wait 0,50
- Mov $2200,Bplcon0
-
- Wait 0,250
- Mov 0,Bplcon0
- Wait $fe,$ff
- Clend:
- Clsize Equ Clend-Clstart
- Even
-
- ;-------- Various table etc. ---------
-
- Blank: Dcb.w 30,0
-
- ;--------- Sintable -------------
- Ypos1 Incbin Binary/Ypos
- Incbin Binary/Ypos
-
- Ypos2 Incbin Binary/Ypos
- Incbin Binary/Ypos
-
- Xpos Incbin Binary/Xpos
- Incbin Binary/Xpos
-
- Shift Incbin Binary/Shifts
- Incbin Binary/Shifts
-
- ;--------- Bob data -------------
- Ball Incbin Binary/Balls
-
- Mask Incbin Binary/Mask
-
- Sinuses:
- Dc.w $0140,$0040,$0100,$0000
- Dc.w $0002,$0003,$0004,$0005
- Dc.w $0004,$0003,$0005,$0004
-
- Dc.w $0240,$0040,$0000,$0200
- Dc.w $00fe,$00ff,$0001,$0002
- Dc.w $0005,$0007,$0003,$0008
-
- Dc.w $0340,$0340,$0300,$0300
- Dc.w $00ff,$0001,$0001,$00ff
- Dc.w $0002,$0003,$0003,$0002
-
- Dc.w $0040,$0040,$0000,$0000
- Dc.w $0002,$0001,$0003,$00ff
- Dc.w $00fe,$0003,$0003,$00fe
-
- Dc.w $0040,$0040,$0000,$0000
- Dc.w $0004,$0003,$0003,$0004
- Dc.w $00f8,$0004,$0004,$00f8
-
- Dc.w $0040,$0040,$0000,$0000
- Dc.w $0002,$0004,$0004,$0002
- Dc.w $0007,$0009,$0009,$0007
-
- Dc.w $0140,$0040,$0000,$0100
- Dc.w $00ff,$0002,$00ff,$0002
- Dc.w $0084,$0080,$0080,$0084
-
- Dc.w $0220,$0070,$0000,$0000
- Dc.w $0001,$0004,$0004,$0001
- Dc.w $0003,$0006,$0006,$0003
-
- Dc.w $0240,$0240,$0200,$0200
- Dc.w $0002,$0001,$0001,$00fe
- Dc.w $0084,$0084,$0084,$0084
-
- Dc.w $0040,$0040,$0000,$0000
- Dc.w $00fd,$00fe,$00fe,$00fd
- Dc.w $007d,$007f,$007f,$007d
-
- Dc.w $0040,$0040,$0000,$0000
- Dc.w $0003,$0002,$0002,$0003
- Dc.w $004e,$004f,$004f,$004e
-
- Dc.w $0340,$0240,$0100,$0200
- Dc.w $0001,$0002,$0003,$0004
- Dc.w $0004,$0003,$0002,$0003
-
- Dc.w $0040,$0040,$0000,$0000
- Dc.w $0001,$0002,$0002,$0001
- Dc.w $0074,$0002,$0002,$0074
-
- Dc.w $0213,$0134,$0054,$0078
- Dc.w $0003,$0001,$0003,$0005
- Dc.w $0004,$0004,$0005,$0007
-
- Dc.w $0040,$0000,$0000,$00c0
- Dc.w $0001,$0002,$0002,$0001
- Dc.w $0044,$00c4,$00c4,$0044
-
-